package mmc;

public class Constants {
	public static final int CELL_SIZE = 32;
	public static final int CELL_SIZE_HALF = CELL_SIZE/2;
	public static final int CELL_SIZE2 = CELL_SIZE*CELL_SIZE;
	public static final int CELL_SIZE3 = CELL_SIZE*CELL_SIZE*CELL_SIZE;
	public static final int BLOCK_MASK = CELL_SIZE-1;
	public static final int CELL_MASK = ~BLOCK_MASK;
	public static final float CELL_HALF_DIAGONAL = (float)Math.sqrt(3*Constants.CELL_SIZE*Constants.CELL_SIZE/4);
	public static final float BLOCK_HALF_DIAGONAL = (float)Math.sqrt(3/4);
	public static final int CHUNK_CELLS = 8;
	public static final int CHUNK_BLOCKS = CHUNK_CELLS*CELL_SIZE;
	public static final int BLOCK_MASK_CHUNK = CHUNK_BLOCKS-1;
	public static final int CHUNK_MASK = ~(BLOCK_MASK_CHUNK);
	public static final int CHUNK_CELL_MASK = BLOCK_MASK_CHUNK&CELL_MASK;
	public static final int CHUNK_BLOCKS_HALF = CHUNK_BLOCKS/2;
	public static final float CHUNK_HALF_DIAGONAL = (float)Math.sqrt(3*Constants.CHUNK_BLOCKS*Constants.CHUNK_BLOCKS/4);
	public static final boolean RENDER_CELL_BORDERS = false;
	public static final int MAX_LIGHT_UPDATE_BLOCKS = 200; //recursive algorithm - prevent stack overflow in extreme cases
	public static final boolean CELL_BACKGROUND_LOADING = false;
	
	public static       boolean IS_SERVER = false;
	
	public static final float FOV = 45f;
	public static final float RENDER_DISTANCE = 1e5f;
	
	public static final String SERVER_NAME = "Server";
	
	public static final float GLOBAL_CD_TIME = 0.3f;
}
